package com.anan.controller;

import com.anan.constants.Constants;
import com.anan.pojo.bo.ChartBO;
import com.anan.pojo.dto.ChartDTO;
import com.anan.pojo.dto.ChartInfoDTO;
import com.anan.service.ChartService;
import com.anan.utils.ComResult;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author anan
 * @date 2023/05/12/02:44
 **/
@RestController
@Slf4j
@RequestMapping("salvage/charts")
public class ChartController {

    @Resource
    private ChartService chartService;


    /**
     * 根据类型查询商品或作品的聊天内容
     */
    @PostMapping("/getCharts")
    private ComResult getCharts(@RequestBody ChartDTO chartDTO) {
        ComResult comResult = new ComResult();
        comResult.setCode(Constants.RET_CODE.FAILED);


//        if (null == chartDTO.getStudentId()) {
//            log.info("===== 参数校验失败，用户id未空！！=====");
//            comResult.setMessage("参数校验失败，用户id未空！！");//TODO:delete
//            return null;
//        }

        List<ChartBO> charts = chartService.getCharts(chartDTO);
        if (!CollectionUtils.isEmpty(charts)) {
            comResult.setData(charts);
            comResult.setMessage("查询成功！");
            comResult.setCode(Constants.RET_CODE.SUCCESS);
        } else {
            comResult.setMessage("暂无聊天内容！");
        }
        return comResult;
    }

    /**
     * 发送一条消息
     */
    @PostMapping("/sendChart")
    private ComResult getCharts(@RequestBody ChartInfoDTO chartInfoDTO) {
        ComResult comResult = new ComResult();
        comResult.setCode(Constants.RET_CODE.FAILED);


        if (null == chartInfoDTO.getChart() || StringUtils.isBlank(chartInfoDTO.getChart())) {
            comResult.setMessage("请输入消息内容！！");//TODO:delete
            return comResult;
        }

        if (null == chartInfoDTO.getStudentId()) {
            log.info("===== 用户id为空！！=====");
            comResult.setMessage("用户id为空！！");//TODO:delete
            return null;
        }

        boolean flag = chartService.sentChart(chartInfoDTO);
        if (flag) {
            comResult.setMessage("发送成功！");
            comResult.setCode(Constants.RET_CODE.SUCCESS);
        } else {
            comResult.setMessage("暂无聊天内容！");
        }

        return comResult;
    }
}
